#include<bits/stdc++.h>
using namespace std;

int main(){
  int n;
  cin>>n;
  vector<vector<int>> v(n+1,vector<int>(n+1));
  v[1][1]=1;
  cout<<"1"<<endl;
  if(n>1){
    v[2][1]=1;
    v[2][2]=1;
    cout<<"1 1"<<endl;
  }
  for(int i=3;i<=n;i++){
      v[i][1] = 1;
      v[i][i] = 1;
      cout<<"1 ";
      for(int j=2;j<=i-1;j++){
		v[i][j]=v[i-1][j-1]+v[i-1][j];
        cout<<v[i][j]<<" ";
      }
    cout<<"1"<<endl;
  }

  return 0;
}


//题目：杨辉三角
//
//描述：
//题目描述
//打印杨辉三角。根据输入的行数，输出对应的杨辉三角。
//
//输入格式
//一个数n，表示杨辉三角的行数。
//
//输出格式
//n行，每行对应杨辉三角相应的内容。
//
//输入样例
//6
//输出样例
//1
//1 1
//1 2 1
//1 3 3 1
//1 4 6 4 1
//1 5 10 10 5 1